package com.xxxx.abstracttest;

import org.springframework.beans.factory.annotation.Autowired;

import java.lang.reflect.Field;

public class MainTest {

    @Autowired
    private AbstractA abstractA;

  /*  public static void main(String[] args) throws NoSuchFieldException {
        *//**
         * 抽象类不能直接new出来，如果要new出来必须使用匿名类的方式，匿名类其实就是声明了一个新的类来继承抽象类，所以你必须在匿名类实现所有抽象方法。
         * 普通的非抽象的类也可以用匿名类new出来，只不过默认不需要实现任何方法，因为普通类里面没有抽象方法，当然可以Override任何非私有方法。
         *//*

        String a = new AbstractA() {
            @Override
            public int b() {
                return 0;
            }

            @Override
            public long c() {
                return 0;
            }
        }.a();

        System.out.println(a);

        String useAbstractClass = new MainTest().useAbstractClass();
        System.out.println(useAbstractClass);
    }*/

    public String useAbstractClass() {
        String a = abstractA.a();
        return a;
    }
}
